#ifndef SEM_H
#define SEM_H

#include "List.h"

typedef struct Semaphore {
    int count;
    ListType waitList;
} SemaphoreType;

void InitSemaphore(SemaphoreType* sem, int count);
void WaitSemaphore(SemaphoreType* sem);
void NotifySemaphore(SemaphoreType* sem);
int GetSemaphoreCount(SemaphoreType* sem);

#endif